'''
编写函数（getInfoFromIDcode）依据输入的身份证号码，返回相关信息，以字典方式返回
检查：身份证号码只能是18位长，并且只有最后1位可能是字母x，其余都为数字，如果检查不合格返回
{
    'code'：'error'，
    'msg'：'身份证号码不符合要求'
}
如果正确进行解析，解析规则：210401199809150914
1、前六位为地区编码
2、第7～14位为出生日期
3、第17位数字奇数表示男，偶数表示女
正确输入返回：
{
    'code'：'ok'，
    'msg'：'',
    '地区编码': '210401'
    '出生日期'：'1998-09-15',
    '性别': '男'
}
'''

def getInfoFromIDcode(idCode):
    res = {}

    # 检查
    res['code'] = 'error'
    res['msg'] = '身份证号码不符合要求'
    if len(idCode) != 18:
        return res

    for i in range(17):
        if idCode[i] < '0' or idCode[i] > '9':
            return res
    if (idCode[17] < '0' or idCode[17] > '9') and (idCode[17].lower() != 'x'):
        return res

    # 抽取信息
    res['code'] = 'ok'
    res['msg'] = ''
    res['地区编码'] = idCode[:6]
    res['出生日期'] = idCode[6:10] + '-' + idCode[10:12] + '-' + idCode[12:14]
    res['性别'] = '男' if int(idCode[16]) % 2 == 1 else '女'

    return res


print(getInfoFromIDcode('1210401199809150914'))
print(getInfoFromIDcode('21040x199809150914'))
print(getInfoFromIDcode('21040119980915091x'))
print(getInfoFromIDcode('210401199809150924'))


